#ifndef SERVERDIALOG_H
#define SERVERDIALOG_H

#include <QDialog>
#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>
#include <QTimer>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlQueryModel>
#include <QSqlError>
#include <QDateTime>
#include <windows.h>
#include<math.h>

namespace Ui {
class ServerDialog;
}

class ServerDialog : public QDialog
{
    Q_OBJECT

public:
    explicit ServerDialog(QWidget *parent = 0);
    ~ServerDialog();

private:
    //创建数据库
    void createDB();
    //创建数据表
    void createTable();
    void sendMessage(QString s);
    //乘客注册响应函数
    void pregister(QStringList b);
    //乘客登录响应函数
    void plogin(QStringList b);
    //乘客打车响应函数
    void ptake(QStringList b);
    //乘客预约打车响应函数
    void porder(QStringList b);
    //司机注册响应函数
    void dregister(QStringList b);
    //司机登录响应函数
    void dlogin(QStringList b);
    //司机发定位响应函数
    void dloc(QStringList b);
    //司机到起始地响应函数
    void dtob();
    //司机到目的地响应函数
    void dtoe();
private slots:
    //响应客户端连接请求的槽函数
    void onNewConnection();
    //接收客户端消息的槽函数
    void onReadyRead();
    //定时器到时后将执行的槽函数
    void onTimeout(void);
private:
    Ui::ServerDialog *ui;
    QTcpServer tcpServer;
    QList<QTcpSocket*> tcpClientList;//容器:保存所有和客户端通信的套接字
    QTimer timer;//定时器
    QSqlDatabase db;//建立Qt和数据库链接

    double price=2;//单价
    double total=0;
    double cut_rate=0.2;//抽成率
    double income=0;
    double pay=0;
    double cut=0;//抽成

    int pbloc=0;
    int peloc=0;
    bool dstatus=false;
    QString dname;
    QString pname;
    QString plate;
    QString sql;
};

#endif // SERVERDIALOG_H
